asp.net mvc

应用程序框架

ASP.NET MVC 是Windows系统下面的Web研发框架,有Microsoft提供。MVC顾名思义:Model, View, Controller.是UI端分层的三层模式。跟三层架构有着本质区别。.Net MVC彻底的分离了前后端,以及抽象层结构的依赖注入,横切编程模式。用于模型架构的ModelMedata,用于模型验证的ValidateProvider,用于数据提供的ValueProvider,用于数据绑定的ModeBinder,用于视图绑定的ViewEngine引擎等。构成了Asp.Net MVC架构的模式。

三层模式技术
一.技术简介:.Net MVC 为UI端分层框架,是微软在改进WebForm框架的基础上革新的一个轻量级Framework。不同于WebForm事件驱动模式,.Net MVC以恢复原本web开发本质为基础,彻底更新了与Web本质渐行渐远的事件驱动模式,也改良了WebForm历史所带来的枷锁,同时微软在框架革新的基础上进一步开源,成为了跨平台或者技术兴趣爱好者的首选Web开发框架。
二 .三层介绍:.Net MVC UI三层,分别为Model(实体类),View(视图模型层,有人认为只是视图层,其实是不对的,这个View包含了强类型模型),Controller(控制器,.Net MVC里面所有的一切Action 或者事件都可以在里面进行,比如操作数据库,绑定数据类型,View视图展示等)
三..Net MVC流程:跟WebForm类似,Asp.Net MVC都是经过管道模型(httpModule,HttpHandler)。.Net MVC引入了Microsoft.Web.AI (实际上是微软人工智能的一部分,引入Web程序MVC框架之后,牛刀小试)之后,利用ApplicationInsights作为Module管道,可提高测试性能,提高更大扩展性功能,以及远程遥控程序运行点数等。抛却宿主以及IIS寄宿DLL等,.Net MVC 入口点可以看做是MvcHanlder的BeginProcessRequest函数起始运行,通过依赖注入(ID or IOC)初始化Controller类工厂,获取到当前要被激活的Controller构建ControllerDescriptor。然后在控制器描述类中筛选合适的Action构建ActionDescriptor,以便执行Action。在Aciton执行内部,通过.Net MVC提供的视图引擎ViewEngine展示CSHTML文件,通过InputWriter和OutWirter相互转化构建HTML文件,展示在客户端。
四.异步结果包:在构建.Net MVC,然后展示视图的一系列过程中,异步结果包(AsyncResultWrappper)类起到了至关重要的作用,它不仅构建了整个.Net MVC的运行流程。还控制了.Net MVC同步或者异步运行的过程以及结果。如果把.Net MVC 比喻成一个汽车,那么异步结果包可以视为这台汽车的引擎发动机。异步结果包类是程序集形式的静态类,它所有函数均为Static,为构建结果包异步(WrapperAsyncResult)做准备,或者是作为启动点。
五.AOP ,IOC,DI模式:在.Net MVC中,依赖注入(DI),IOC(控制反转),AOP(面向横切的编程)是重复几率使用最为频发,也是最为核心的三大技术点。DI实质上是一个容器类,容器类里面包含了当前程序需要注入的点。IOC则是这些控制点需要跳转到的程序,或者是控制权移交之后需要执行的程序集或者DLL或者一个函数,或者一段代码。AOP是面向横切的编程,或者亦称之为:面向切面的编程。顾名思义:横切或者切面,就是在程序或者函数上进行一段代码插入或者拦截,或者做一些其它事情。在.Net MVC 里面,面向横切的编程最主要体现在筛选器功能上,这些筛选器可以进一步控制Action或者Controller,宽松或者更严格的执行你想要的或者是自己想要结果。
三层模式技术点
一.Model绑定:Model绑定利用Modelbinder对模型进行数据绑定或者赋值。
二.数据提供模型(ValueProvider):获取当前提交的数据或者数据流等
三.Model验证(valuedator):验证当前模型的正确性
四.Controller类工厂实例化:依靠依赖注入模式激活Controller
五.Action激活:通过Aggregate构建的递归链执行Action
六.视图展示:通过ViewEngine 引擎展示IView接口的视图
七.筛选器(filter):通过AOP编程切入程序的一种技术模式
八.MultiServiceResolver类解析:
九.SingleServiceResolver类解析
十.DependencyResolver类详解
特色与优点
MVC (Model、View、Controller)将一个Web应用分解为:Model、View和Controller。ASP.NET MVC框架提供了一个可以代替ASP.NETWebForm的基于MVC设计模式的应用。
ASP.NET MVC概述·MVC的优点:
1.通过把项目分成Model、View和Controller,使得复杂项目更加容易维护,减少项目之间的耦合。
2.使用ViewState和服务器表单控件,可以更方便的控制应用程序的行为
3.应用程序通过Controller来控制程序请求,并提供了原生的UrlRouting功能来重写Url。
4.使Web程序对单元测试的支持更加出色
5.在团队开发模式下表现更出众
ASP.NET MVC概述·WebForm的优点:
1.采用事件驱动模式来控制应用程序请求,由大量服务器控件支持
2.采用页面控制机制,可以为单个页面添加事件处理函数
3.没有使用ViewState和服务器端页面,使管理页面状态信息更加轻松。
4.对人数较少的想使用服务器端控件的开发团队,使用起来更加方便
5.开发起来比MVC模式要轻松简单一些
ASP.NET MVC概述MVC框架特色:
1.分离任务(输入逻辑,业务逻辑和显示逻辑),易于测试和默认支持测试驱动开发(TDD)。所有MVC用到的组件都是基于接口并且可以在进行测试时进行Mock,你在不运行ASP.NET进程的情况下进行测试,使得测试更加快速和简捷。
2.可扩展的简便的框架。MVC框架被设计用来更轻松的移植和定制功能。你可以自定义视图引擎、UrlRouting规则及重载Action方法等。MVC也支持Dependency Injection (DI,依赖注入) and Inversion of Control (IoC,控制反转)的良好支持。
3.强大的UrlRouting机制让你更方便的建立容易理解和可搜索的Url,为SEO提供更好的支持。Url可以不包含任何文件扩展名,并且可以重写Url使其对搜索引擎更加友好。
4.可以使用ASP.NET现有的页面标记、用户控件、模板页。你可以使用嵌套模板页,嵌入表达式<%=%>,声明服务器控件、模板,数据绑定、定位等等。
5.对现有的asp.net程序的支持,mvc让你可以使用如窗体认证和Windows认证、url认证、组管理和规则、输出、数据缓存、session、profile 、health monitoring、配置管理系统、provider architecture特性。
2.0
Scott Gu在博客中宣布ASP.NET MVC 2正式版发布,该版本适用于Visual Studio 2008及基于ASP.NET 3.5平台的Visual Web Developer 2008 Express。
在2010年4月12日发布的VS 2010正式版与Visual Web Developer 2010正式版中内置对ASP.NET MVC 2的支持,不需要再另外安装。
ASP.NET MVC 2是ASP.NET MVC的又一次重大更新,兼容ASP.NETMVC 1,和以前一样,ASP.NET MVC 2源代码完全开放。
ASP.NET MVC 2可以与ASP.NET MVC 1并存,也就是说在同一台机器上,可以有的程序用ASP.NET MVC 1,有的程序用ASP.NET MVC 2。
3.0
ASP.NET MVC 3可以与ASP.NET MVC 2并存。
ASP.NET MVC 3中提供了新的View引擎,Razor。
4.0
ASP.NET MVC 4已经正式发布,并内置于Visual Studio 2012,新版本ASP.NET MVC版本新增了手机模版、单页应用程序,Web API等模版,更新了一些 javascript 库,其中示例页面也使用了jquery的AJAX登录,并增加了OAuth认证/Entity Framework5的支持。同时也增强了对HTML5、AsyncController等的支持。
关键技术
ASP .NET MVC内包含若干关键技术。
ActionResult : Action 的返回类型
Filter :过滤器
ModelBinder : Model绑定器
Url Routing :Url路由规则
视图引擎:ASP .NET MVC包含多种视图引擎,其中以WebForms(即aspx)以及WebPages(Razor)最为常用
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市